{
 "cells": [
  {
   "cell_type": "markdown",
   "id": "37dbb213-c251-4f53-93b1-26b8812b1da8",
   "metadata": {},
   "source": [
    "# Midwest Data Science-based Programs per Class"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "id": "69074904-314a-43f0-a33c-702b5b15e5af",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np \n",
    "import re\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "id": "c86da7d2-fdf0-414a-916c-fe1ea066f23e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# This program takes a dataframe and outputs the LaTex code need to make \n",
    "# a table using the data \n",
    "\n",
    "# If the index has a name, its value is extracted through df.index.name\n",
    "\n",
    "# If hline is not specified, it will assume there are no horizontal lines separating \n",
    "# rows.  If vline is not specified, it will assume there are not vertical lines between columns. \n",
    "# If header_sep is None, then there won't be a horizontal line between header names and the body\n",
    "# if specified, then there will be. \n",
    "\n",
    "# We assume center align, but allow for other alignments. \n",
    "\n",
    "def latex_table(df,hline=None,vline=None,header_sep=None,align=None):\n",
    "    # Checks to see if user wants vertical lines between columns. \n",
    "    if vline==None:\n",
    "        col_divide=' ' \n",
    "    else:\n",
    "        col_divide=\"|\"\n",
    "    # checks to see if user wants horizontal lines between rows \n",
    "    if hline==None:\n",
    "        row_divide=' ' \n",
    "    else: \n",
    "        row_divide = \" \\\\hline\"\n",
    "\n",
    "    \n",
    "    # Get the number of columns, including the index of the dataframe \n",
    "    num_cols = df.shape[1]+1\n",
    "\n",
    "    # Print out the \\begin{tabular}{ formatting } \n",
    "\n",
    "    # First, establish the formatting such as \"c|c|c\"\n",
    "    A = align \n",
    "    format = A + col_divide\n",
    "    # Duplicate c| num_cols-1 times\n",
    "    format = format*(num_cols-1)\n",
    "\n",
    "    #add final alignment character \n",
    "    format = format+A\n",
    "\n",
    "    \n",
    "    print(\" \\\\begin{tabular}{\",format,\"}\")\n",
    "    \n",
    "    # Get the number of rows \n",
    "    num_rows = df.shape[0]\n",
    "\n",
    "    # Is there a name for the index?\n",
    "    if df.index.name==None:\n",
    "        index_name = \" \"\n",
    "    else:\n",
    "        index_name = df.index.name\n",
    "\n",
    "    # Make the row of column names \n",
    "    header = index_name\n",
    "    #print(\"Header is\",(header))\n",
    "    \n",
    "    # Add the index name and column name to string\n",
    "    for names in df.columns:\n",
    "        header = header + \" & \" + str(names)\n",
    "    #print(\"Header is\",(header))\n",
    "    # Add a line skip to end of column names \n",
    "    header = header + \"\\\\\\\\\"\n",
    "\n",
    "    # if header_sep == none, do nothing to the header, but \n",
    "    # if it's specified, add a horizontal line to the header \n",
    "\n",
    "    if header_sep!=None:\n",
    "        header = header + \"\\\\hline\"\n",
    "    else: \n",
    "        header = header + \" \" \n",
    "    print(header)\n",
    "    # Okay, we've established the column names and index names. \n",
    "    # Now we have to establish the num_rows of rows. \n",
    "\n",
    "    #Let's write each row as an entry in an array of length N \n",
    "    rows = [\" \"]*num_rows\n",
    "\n",
    "    for j in range(0,num_rows):\n",
    "        # Add index to row j \n",
    "        rows[j]=rows[j]+str(df.index[j])\n",
    "        # Add column entries to rows[j]\n",
    "        for column in df.columns:\n",
    "            rows[j]=rows[j]+ \" & \" + str(df.loc[df.index[j],column])\n",
    "        # Add hline if applicable to divide rows \n",
    "        rows[j]=rows[j] + \"\\\\\\\\\"+row_divide\n",
    "        print(rows[j])\n",
    "\n",
    "    # Close tabular \n",
    "    print(\"\\\\end{tabular}\")\n",
    "    return(\"Table Complete\")"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "id": "90c36762-fabd-4777-983c-62302b1c55e6",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import the program dataset \n",
    "df = pd.read_csv('Distinct_programs.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "id": "678b5594-6f31-468a-b342-d893168339d4",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>State</th>\n",
       "      <th>School Name</th>\n",
       "      <th>City</th>\n",
       "      <th>Class</th>\n",
       "      <th>Program Name</th>\n",
       "      <th>Program Delivery</th>\n",
       "      <th>Program Level</th>\n",
       "      <th>Program Type</th>\n",
       "      <th>Undergraduate Major or Minor</th>\n",
       "      <th>Notes</th>\n",
       "      <th>Link(s) to Program Page</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Augustana College</td>\n",
       "      <td>Rock Island</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Both</td>\n",
       "      <td>Bachelor's in \"Data Analytics\" has two tracks ...</td>\n",
       "      <td>https://augustana.edu/academics/areas-of-study...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Aurora University</td>\n",
       "      <td>Aurora</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Engineering</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>A program with heavy focus on mathematics,  so...</td>\n",
       "      <td>https://aurora.edu/academics/undergraduate/dat...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Benedictine University</td>\n",
       "      <td>Lisle</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Science</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>Led by the Department of Mathematical and Comp...</td>\n",
       "      <td>https://ben.edu/degree-programs/data-science/</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>3</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Bradley University</td>\n",
       "      <td>Peoria</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Science</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Undergraduate Minor</td>\n",
       "      <td>Minor Only</td>\n",
       "      <td>Only the minor satisfies our classification as...</td>\n",
       "      <td>https://www.bradley.edu/programs/profile.dot?i...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>4</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Bradley University</td>\n",
       "      <td>Peoria</td>\n",
       "      <td>3</td>\n",
       "      <td>Data Science and Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Graduate</td>\n",
       "      <td>Master's (MS)</td>\n",
       "      <td>Not Applicable</td>\n",
       "      <td>The program is through the Computer Science an...</td>\n",
       "      <td>https://www.bradley.edu/programs/profile.dot?i...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0     State             School Name         City  Class  \\\n",
       "0           0  Illinois       Augustana College  Rock Island      0   \n",
       "1           1  Illinois       Aurora University       Aurora      0   \n",
       "2           2  Illinois  Benedictine University        Lisle      0   \n",
       "3           3  Illinois      Bradley University       Peoria      0   \n",
       "4           4  Illinois      Bradley University       Peoria      3   \n",
       "\n",
       "                 Program Name Program Delivery  Program Level  \\\n",
       "0              Data Analytics    Not Specified  Undergraduate   \n",
       "1            Data Engineering           Campus  Undergraduate   \n",
       "2                Data Science           Campus  Undergraduate   \n",
       "3                Data Science    Not Specified  Undergraduate   \n",
       "4  Data Science and Analytics    Not Specified       Graduate   \n",
       "\n",
       "          Program Type Undergraduate Major or Minor  \\\n",
       "0           Bachelor's                         Both   \n",
       "1      Bachelor's (BS)                   Major Only   \n",
       "2      Bachelor's (BS)                   Major Only   \n",
       "3  Undergraduate Minor                   Minor Only   \n",
       "4        Master's (MS)               Not Applicable   \n",
       "\n",
       "                                               Notes  \\\n",
       "0  Bachelor's in \"Data Analytics\" has two tracks ...   \n",
       "1  A program with heavy focus on mathematics,  so...   \n",
       "2  Led by the Department of Mathematical and Comp...   \n",
       "3  Only the minor satisfies our classification as...   \n",
       "4  The program is through the Computer Science an...   \n",
       "\n",
       "                             Link(s) to Program Page  \n",
       "0  https://augustana.edu/academics/areas-of-study...  \n",
       "1  https://aurora.edu/academics/undergraduate/dat...  \n",
       "2      https://ben.edu/degree-programs/data-science/  \n",
       "3  https://www.bradley.edu/programs/profile.dot?i...  \n",
       "4  https://www.bradley.edu/programs/profile.dot?i...  "
      ]
     },
     "execution_count": 5,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "id": "5fa75333-87cb-48c3-a5d0-44e2194def74",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State</th>\n",
       "      <th>School Name</th>\n",
       "      <th>City</th>\n",
       "      <th>Class</th>\n",
       "      <th>Program Name</th>\n",
       "      <th>Program Delivery</th>\n",
       "      <th>Program Level</th>\n",
       "      <th>Program Type</th>\n",
       "      <th>Undergraduate Major or Minor</th>\n",
       "      <th>Notes</th>\n",
       "      <th>Link(s) to Program Page</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Augustana College</td>\n",
       "      <td>Rock Island</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Both</td>\n",
       "      <td>Bachelor's in \"Data Analytics\" has two tracks ...</td>\n",
       "      <td>https://augustana.edu/academics/areas-of-study...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Aurora University</td>\n",
       "      <td>Aurora</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Engineering</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>A program with heavy focus on mathematics,  so...</td>\n",
       "      <td>https://aurora.edu/academics/undergraduate/dat...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      State        School Name         City  Class      Program Name  \\\n",
       "0  Illinois  Augustana College  Rock Island      0    Data Analytics   \n",
       "1  Illinois  Aurora University       Aurora      0  Data Engineering   \n",
       "\n",
       "  Program Delivery  Program Level     Program Type  \\\n",
       "0    Not Specified  Undergraduate       Bachelor's   \n",
       "1           Campus  Undergraduate  Bachelor's (BS)   \n",
       "\n",
       "  Undergraduate Major or Minor  \\\n",
       "0                         Both   \n",
       "1                   Major Only   \n",
       "\n",
       "                                               Notes  \\\n",
       "0  Bachelor's in \"Data Analytics\" has two tracks ...   \n",
       "1  A program with heavy focus on mathematics,  so...   \n",
       "\n",
       "                             Link(s) to Program Page  \n",
       "0  https://augustana.edu/academics/areas-of-study...  \n",
       "1  https://aurora.edu/academics/undergraduate/dat...  "
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "if 'Unnamed: 0' in df.columns:\n",
    "    df.drop(columns=['Unnamed: 0'],inplace=True)\n",
    "df.head(2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "id": "b741c93c-b354-445a-81c2-26e12d35b607",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "404"
      ]
     },
     "execution_count": 7,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# There as many programs as there are rows. \n",
    "\n",
    "n_programs = df.shape[0]\n",
    "n_programs\n",
    "\n"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "946e2a5a-b005-440c-90db-94282d453772",
   "metadata": {},
   "source": [
    "## Distribution of Classifications \n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "id": "ca79b989-fd3f-4a61-ada4-066ecee06c5f",
   "metadata": {},
   "outputs": [],
   "source": [
    "# For this section, we just want to determine how many\n",
    "# programs there are for each classification. \n",
    "\n",
    "# First, make sure the dtype for the class column \n",
    "# is a category \n",
    "\n",
    "df['Class']=df['Class'].astype('category')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "id": "cfa7c1f7-c0f4-497d-bb2e-fd1b91810049",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Define the labels for the classification system\n",
    "features = pd.Series(['Data Science', 'Interdisciplinary Data Science', \\\n",
    "                          'Data Science. Concentration', 'Data Analytics'])"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "id": "92ee1c69-829a-4478-8d6e-a2dda0e3a4b6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Data Science                      221\n",
       "Data Analytics                    137\n",
       "Data Science. Concentration        26\n",
       "Interdisciplinary Data Science     20\n",
       "Name: count, dtype: int64"
      ]
     },
     "execution_count": 11,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Print out the value counts corresponding to each \n",
    "# classification \n",
    "\n",
    "class_table = features.take(df['Class']).value_counts()\n",
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "id": "204c5594-4d3f-41f6-9f2d-3640b2e6560e",
   "metadata": {},
   "outputs": [],
   "source": [
    "class_table=pd.DataFrame(class_table)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "id": "1a016a14-71be-4e7b-8a89-468182ce83a5",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Data Science</th>\n",
       "      <td>221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Analytics</th>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Science. Concentration</th>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Interdisciplinary Data Science</th>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Number of Programs\n",
       "Data Science                                   221\n",
       "Data Analytics                                 137\n",
       "Data Science. Concentration                     26\n",
       "Interdisciplinary Data Science                  20"
      ]
     },
     "execution_count": 13,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_table.rename(columns={'count':'Number of Programs'},inplace=True)\n",
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "id": "9d869c23-ae81-401d-88e1-88c776399088",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>All Programs</th>\n",
       "      <td>404</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "              Number of Programs\n",
       "All Programs                 404"
      ]
     },
     "execution_count": 14,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "add_row=pd.DataFrame({\"Number of Programs\":n_programs},index=[\"All Programs\"])\n",
    "add_row"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "id": "a4bacc72-fe6f-479b-9792-25d0a74b387f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Data Science</th>\n",
       "      <td>221</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Analytics</th>\n",
       "      <td>137</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Science. Concentration</th>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Interdisciplinary Data Science</th>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All Programs</th>\n",
       "      <td>404</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Number of Programs\n",
       "Data Science                                   221\n",
       "Data Analytics                                 137\n",
       "Data Science. Concentration                     26\n",
       "Interdisciplinary Data Science                  20\n",
       "All Programs                                   404"
      ]
     },
     "execution_count": 15,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_table=pd.concat([class_table,add_row])\n",
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "id": "6dbb545a-29d6-4bd3-ae60-31788b62c9f8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "      <th>Percentage of Total Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Data Science</th>\n",
       "      <td>221</td>\n",
       "      <td>54.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Analytics</th>\n",
       "      <td>137</td>\n",
       "      <td>33.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Science. Concentration</th>\n",
       "      <td>26</td>\n",
       "      <td>6.44</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Interdisciplinary Data Science</th>\n",
       "      <td>20</td>\n",
       "      <td>4.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All Programs</th>\n",
       "      <td>404</td>\n",
       "      <td>100.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Number of Programs  \\\n",
       "Data Science                                   221   \n",
       "Data Analytics                                 137   \n",
       "Data Science. Concentration                     26   \n",
       "Interdisciplinary Data Science                  20   \n",
       "All Programs                                   404   \n",
       "\n",
       "                                Percentage of Total Programs  \n",
       "Data Science                                           54.70  \n",
       "Data Analytics                                         33.91  \n",
       "Data Science. Concentration                             6.44  \n",
       "Interdisciplinary Data Science                          4.95  \n",
       "All Programs                                          100.00  "
      ]
     },
     "execution_count": 16,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Let's add a column that shows the representation of each classification as a percentage of total programs \n",
    "\n",
    "class_table[\"Percentage of Total Programs\"]=round(\\\n",
    "        class_table['Number of Programs']/class_table.loc['All Programs'].values[0]*100,2)\n",
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "id": "2194a094-21a4-459c-b3a3-239e51c6e0e3",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Let's add a column that shows the corresponding dummy variable for each classification.To do that, we want to reorder the index. \n",
    "categories=['Data Science', 'Interdisciplinary Data Science', 'Data Science Concentration', 'Data Analytics','All Programs']\n",
    "class_table=class_table.reindex(categories)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "id": "0cc79902-5030-4378-9dc9-9f4655edf27a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "      <th>Percentage of Total Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Data Science</th>\n",
       "      <td>221.0</td>\n",
       "      <td>54.70</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Interdisciplinary Data Science</th>\n",
       "      <td>20.0</td>\n",
       "      <td>4.95</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Science Concentration</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Analytics</th>\n",
       "      <td>137.0</td>\n",
       "      <td>33.91</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All Programs</th>\n",
       "      <td>404.0</td>\n",
       "      <td>100.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Number of Programs  \\\n",
       "Data Science                                 221.0   \n",
       "Interdisciplinary Data Science                20.0   \n",
       "Data Science Concentration                     NaN   \n",
       "Data Analytics                               137.0   \n",
       "All Programs                                 404.0   \n",
       "\n",
       "                                Percentage of Total Programs  \n",
       "Data Science                                           54.70  \n",
       "Interdisciplinary Data Science                          4.95  \n",
       "Data Science Concentration                               NaN  \n",
       "Data Analytics                                         33.91  \n",
       "All Programs                                          100.00  "
      ]
     },
     "execution_count": 18,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "id": "35316cf3-d9f0-4966-a65b-d2b85e287360",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Number of Programs</th>\n",
       "      <th>Percentage of Total Programs</th>\n",
       "      <th>Class I.D.</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Data Science</th>\n",
       "      <td>221.0</td>\n",
       "      <td>54.70</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Interdisciplinary Data Science</th>\n",
       "      <td>20.0</td>\n",
       "      <td>4.95</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Science Concentration</th>\n",
       "      <td>NaN</td>\n",
       "      <td>NaN</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Data Analytics</th>\n",
       "      <td>137.0</td>\n",
       "      <td>33.91</td>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>All Programs</th>\n",
       "      <td>404.0</td>\n",
       "      <td>100.00</td>\n",
       "      <td></td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                                Number of Programs  \\\n",
       "Data Science                                 221.0   \n",
       "Interdisciplinary Data Science                20.0   \n",
       "Data Science Concentration                     NaN   \n",
       "Data Analytics                               137.0   \n",
       "All Programs                                 404.0   \n",
       "\n",
       "                                Percentage of Total Programs Class I.D.  \n",
       "Data Science                                           54.70          0  \n",
       "Interdisciplinary Data Science                          4.95          1  \n",
       "Data Science Concentration                               NaN          2  \n",
       "Data Analytics                                         33.91          3  \n",
       "All Programs                                          100.00             "
      ]
     },
     "execution_count": 19,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now add a column \n",
    "\n",
    "class_table['Class I.D.']=[0,1,2,3,' ']\n",
    "class_table"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "id": "91ed8278-1fad-4cf8-ace6-fb47bdee12a7",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \\begin{tabular}{ c c c c }\n",
      "  & Number of Programs & Percentage of Total Programs & Class I.D.\\\\ \n",
      " Data Science & 221.0 & 54.7 & 0\\\\ \n",
      " Interdisciplinary Data Science & 20.0 & 4.95 & 1\\\\ \n",
      " Data Science Concentration & nan & nan & 2\\\\ \n",
      " Data Analytics & 137.0 & 33.91 & 3\\\\ \n",
      " All Programs & 404.0 & 100.0 &  \\\\ \n",
      "\\end{tabular}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'Table Complete'"
      ]
     },
     "execution_count": 20,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make a LaTeX table for this. \n",
    "\n",
    "latex_table(class_table,align='c')"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "c9f90eb3-8ae0-422f-87bc-ad24828e8471",
   "metadata": {},
   "source": [
    "# Classification of Programs by School Type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "id": "debabb26-00db-47aa-b45f-e580662ac34e",
   "metadata": {},
   "outputs": [],
   "source": [
    "import pandas as pd \n",
    "import numpy as np \n",
    "import re\n",
    "import matplotlib.pyplot as plt"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "id": "4af25ce9-4451-42d2-8b34-76d4ac907cdc",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Import the program dataset \n",
    "df = pd.read_csv('Distinct_programs.csv')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "id": "51172b60-8723-4e56-9df9-e8058f10aab6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Unnamed: 0</th>\n",
       "      <th>State</th>\n",
       "      <th>School Name</th>\n",
       "      <th>City</th>\n",
       "      <th>Class</th>\n",
       "      <th>Program Name</th>\n",
       "      <th>Program Delivery</th>\n",
       "      <th>Program Level</th>\n",
       "      <th>Program Type</th>\n",
       "      <th>Undergraduate Major or Minor</th>\n",
       "      <th>Notes</th>\n",
       "      <th>Link(s) to Program Page</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Augustana College</td>\n",
       "      <td>Rock Island</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Both</td>\n",
       "      <td>Bachelor's in \"Data Analytics\" has two tracks ...</td>\n",
       "      <td>https://augustana.edu/academics/areas-of-study...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>Illinois</td>\n",
       "      <td>Aurora University</td>\n",
       "      <td>Aurora</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Engineering</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>A program with heavy focus on mathematics,  so...</td>\n",
       "      <td>https://aurora.edu/academics/undergraduate/dat...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "   Unnamed: 0     State        School Name         City  Class  \\\n",
       "0           0  Illinois  Augustana College  Rock Island      0   \n",
       "1           1  Illinois  Aurora University       Aurora      0   \n",
       "\n",
       "       Program Name Program Delivery  Program Level     Program Type  \\\n",
       "0    Data Analytics    Not Specified  Undergraduate       Bachelor's   \n",
       "1  Data Engineering           Campus  Undergraduate  Bachelor's (BS)   \n",
       "\n",
       "  Undergraduate Major or Minor  \\\n",
       "0                         Both   \n",
       "1                   Major Only   \n",
       "\n",
       "                                               Notes  \\\n",
       "0  Bachelor's in \"Data Analytics\" has two tracks ...   \n",
       "1  A program with heavy focus on mathematics,  so...   \n",
       "\n",
       "                             Link(s) to Program Page  \n",
       "0  https://augustana.edu/academics/areas-of-study...  \n",
       "1  https://aurora.edu/academics/undergraduate/dat...  "
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head(2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "id": "27d59688-0c8a-45ef-8460-e1e26a556282",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State</th>\n",
       "      <th>School Name</th>\n",
       "      <th>City</th>\n",
       "      <th>Class</th>\n",
       "      <th>Program Name</th>\n",
       "      <th>Program Delivery</th>\n",
       "      <th>Program Level</th>\n",
       "      <th>Program Type</th>\n",
       "      <th>Undergraduate Major or Minor</th>\n",
       "      <th>Notes</th>\n",
       "      <th>Link(s) to Program Page</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Augustana College</td>\n",
       "      <td>Rock Island</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Both</td>\n",
       "      <td>Bachelor's in \"Data Analytics\" has two tracks ...</td>\n",
       "      <td>https://augustana.edu/academics/areas-of-study...</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Aurora University</td>\n",
       "      <td>Aurora</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Engineering</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>A program with heavy focus on mathematics,  so...</td>\n",
       "      <td>https://aurora.edu/academics/undergraduate/dat...</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      State        School Name         City  Class      Program Name  \\\n",
       "0  Illinois  Augustana College  Rock Island      0    Data Analytics   \n",
       "1  Illinois  Aurora University       Aurora      0  Data Engineering   \n",
       "\n",
       "  Program Delivery  Program Level     Program Type  \\\n",
       "0    Not Specified  Undergraduate       Bachelor's   \n",
       "1           Campus  Undergraduate  Bachelor's (BS)   \n",
       "\n",
       "  Undergraduate Major or Minor  \\\n",
       "0                         Both   \n",
       "1                   Major Only   \n",
       "\n",
       "                                               Notes  \\\n",
       "0  Bachelor's in \"Data Analytics\" has two tracks ...   \n",
       "1  A program with heavy focus on mathematics,  so...   \n",
       "\n",
       "                             Link(s) to Program Page  \n",
       "0  https://augustana.edu/academics/areas-of-study...  \n",
       "1  https://aurora.edu/academics/undergraduate/dat...  "
      ]
     },
     "execution_count": 25,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "if 'Unnamed: 0' in df.columns:\n",
    "    df.drop(columns=['Unnamed: 0'],inplace=True)\n",
    "df.head(2)\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "id": "73a7add1-784f-4501-a11e-80a5f50027cf",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Change program type and class to categorical columns \n",
    "\n",
    "df['Class']=df['Class'].astype('category')\n",
    "df['Program Type']=df['Program Type'].astype('category')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "330f2da3-69df-45a0-82a3-9c1a3cedb3e1",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "id": "189ce876-8fdc-449f-ad25-e8a2575ad8bb",
   "metadata": {},
   "outputs": [],
   "source": [
    "# We're going to group the schools into categories of: \n",
    "# 1) Community Colleges - these are schools whose name contains 'community'\n",
    "# 2) Technology / Technical and Engineering - these schools have \"Tech\" or \"Engineering\"\n",
    "# in their name \n",
    "# 3) Universities - these are the remaining colleges whose name includes \"University\"\n",
    "# 4) Other Colleges - to include schools that are not technical/technological/enginnering, \n",
    "# community colleges or universities.  These should really just be \"colleges\". \n",
    "\n",
    "# First, we extract a list of the schools names (unique names), then add them to arrays\n",
    "# based on their names given the criterion above. \n",
    "\n",
    "names = list(df['School Name'].unique())\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "id": "89784a32-9819-4c8f-baac-0fa07046aee8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Augustana College',\n",
       " 'Aurora University',\n",
       " 'Benedictine University',\n",
       " 'Bradley University',\n",
       " 'College of DuPage']"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Check out names \n",
    "\n",
    "names[0:5]"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 29,
   "id": "09758d15-4b08-4ec4-8c31-8aa868521214",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now initalize empty arrays to store the names \n",
    "\n",
    "# Community college names \n",
    "com = []\n",
    "\n",
    "# Technology, Technical and Engineering names \n",
    "tech = []\n",
    "\n",
    "# Univerisity names \n",
    "univ = []\n",
    "\n",
    "# Other names \n",
    "other =[]\n",
    "\n",
    "# Iterate over the names of the schools in \"Names\" and append them to the empty arrays \n",
    "# as logical \n",
    "\n",
    "for school in names:\n",
    "    # Community collges take precedence. \n",
    "    # If 'Community' is in the school's name, add the name to com.\n",
    "    if 'Community' in school:\n",
    "        com.append(school)\n",
    "    # Next 'tech' takes precedence.  Add 'tech' schools to tech.\n",
    "    elif 'Tech' in school:\n",
    "        tech.append(school)\n",
    "    # If engineering is in the school's name, add it to the tech\n",
    "    elif 'Engineering' in school:\n",
    "        tech.append(school)\n",
    "    # Next add 'universities' to the univ array \n",
    "    elif 'University' in school:\n",
    "        univ.append(school)\n",
    "    # If the school isn't categorized yet, let it be 'other'\n",
    "    else:\n",
    "        other.append(school)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 30,
   "id": "481ee55b-f88e-4bcc-a75a-5be6ac6101ba",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Heartland Community College\n",
      "Ivy Tech Community College - Multiple Campuses\n",
      "Clinton Community College\n",
      "Muscatine Community College\n",
      "Northeast Iowa Community College\n",
      "Scott Community College\n",
      "Butler Community College\n",
      "Johnson County Community College\n",
      "Grand Rapids Community College\n",
      "Inver Hills Community College\n",
      "Normandale Community College\n",
      "North Hennepin Community College\n",
      "St. Louis Community College at Meramec\n",
      "Metropolitan Community College\n",
      "Sinclair Community College\n"
     ]
    }
   ],
   "source": [
    "for item in com:\n",
    "    print(item)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 31,
   "id": "c2589eb8-5c07-48ab-9d0f-0170187863ee",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Illinois Institute of Technology\n",
      "Rose-Hulman Institute of Technology\n",
      "Lawrence Technological University\n",
      "Michigan Technological University\n",
      "Anoka Technical College\n",
      "Missouri University of Science and Technology\n",
      "South Dakota School of Mines and Technology\n",
      "Chippewa Valley Technical College\n",
      "Fox Valley Technical College\n",
      "Gateway Technical College\n",
      "Madison Area Technical College\n",
      "Milwaukee School of Engineering\n",
      "Northcentral Technical College\n",
      "Wisconsin Technical College - Northeast\n",
      "Wisconsin Technical College - Southwest\n",
      "Waukesha County Technical College\n"
     ]
    }
   ],
   "source": [
    "for item in tech:\n",
    "    print(item)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 32,
   "id": "5330ebe6-9f3f-4c54-b18d-1ffc9375c8ad",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Aurora University, Benedictine University, Bradley University, DePaul University, Dominican University, Elmhurst University, Governors State University, Illinois State University, Illinois Wesleyan University, Lewis University, Loyola University Chicago, Millikin University, National Louis University - Chicago, Northeastern Illinois University, Northern Illinois University, Northwestern University, Olivet Nazarene University, Roosevelt University, Southern Illinois University - Carbondale, Southern Illinois University - Edwardsville, University of Chicago, University of Illinois - Springfield, University of Illinois - Urbana-Champaign, University of St. Francis, Western Illinois University, Anderson University, Ball State University, Butler University, DePauw University, Indiana University - Bloomington, Indiana University - Multiple Campuses, Indiana University - Purdue University Indianapolis, Manchester University, Purdue University - Fort Wayne, Purdue University - Northwest, Purdue University - West Lafayette, Taylor University, Trine University, University of Evansville, University of Indianapolis, University of Notre Dame, Valparaiso University, Western Governors University, Dordt University, Drake University, Graceland University, Grand View University, Iowa State University, Mount Mercy University, St. Ambrose University, University of Dubuque, University of Iowa, University of Northern Iowa, Baker University, Fort Hays State University, Kansas State University, MidAmerica Nazarene University, Newman University, University of Kansas, University of Kansas - Medical Center, Washburn University, Wichita State University, Andrews University, Calvin University, Central Michigan University, Davenport University, Eastern Michigan University, Ferris State University, Grand Valley State University, Kettering University, Lake Superior State University, Michigan State University, Northern Michigan University, Northwood University, Rochester University, Siene Heights University, Spring Arbor University, University of Detroit Mercy, University of Michigan - Ann Arbor, University of Michigan - Dearborn, Wayne State University, Western Michigan University, Augsburg University, Bethel University, College of St. Benedict (CSB) and St. John's University (SJU), Concordia University - Saint Paul, Hamline University, Metropolitan State University, Minnesota State University Mankato, Saint Mary's University of Minnesota, Southwest Minnesota State University, St. Catherine University, Saint Cloud State University, University of Minnesota - Morris, University of Minnesota - Twin Cities, University of St. Thomas, Walden University, Winona State University, Drury University, Fontbonne University, Lindenwood University, Maryville University, Missouri State University, Northwest Missouri State University, Rockhurst University, Saint Louis University, Southeast Missouri State University, Southwest Baptist University, Truman State University, University of Central Missouri, University of Missouri - Kansas City, University of Missouri - St. Louis, Washington University in St. Louis, Webster University, Herzing University - Multiple Campuses, Rasmussen University - Multiple Campuses, Bellevue University, Creighton University, Doane University, Midland University, Nebraska Wesleyan University, University of Nebraska - Kearney, University of Nebraska - Lincoln, University of Nebraska - Omaha, Minot State University, North Dakota State University, University of North Dakota, Baldwin Wallace University, Bowling Green State University, Case Western Reserve University, Cleveland State University, Denison University, Franklin University, John Carroll University, Kent State University, Malone University, Miami University, Miami University - Oxford, Mount St. Joseph University, Ohio Christian University, Ohio Dominican University, Ohio Northern University, Ohio State University, Ohio Wesleyan University, Otterbein University, University of Akron, University of Cincinnati, University of Findlay, University of Mount Union, University of Toledo, Walsh University, Wittenberg University, Wright State University, Xavier University, Youngstown State University, Augustana University, Dakota State University, South Dakota State University, University of Sioux Falls, University of South Dakota, Cardinal Stritch University, Concordia University - Wisconsin, Lakeland University, Lawrence University, Marquette University, University of Wisconsin - Green Bay, University of Wisconsin - Madison, University of Wisconsin - Milwaukee, University of Wisconsin - Multiple Campuses, University of Wisconsin - Platteville, University of Wisconsin - River Falls, University of Wisconsin - Stevens Point, University of Wisconsin - Stout, University of Wisconsin - Whitewater and University of Wisconsin - Parkside\n"
     ]
    }
   ],
   "source": [
    "# Make a program to output the array of strings as a single string in \n",
    "# a list form \n",
    "\n",
    "# Example:  If A=['a', 'b', 'c'] then print_list(A) = 'a, b and c'\n",
    "\n",
    "def print_list(A):\n",
    "    B=A[0]\n",
    "    j=1\n",
    "    while j < len(A)-1:\n",
    "        B=B+\", \"+A[j]\n",
    "        j=j+1\n",
    "    B=B+\" and \"+A[len(A)-1]\n",
    "    return(print(B))\n",
    "\n",
    "print_list(univ)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 33,
   "id": "8d9493fd-b134-4b70-8bb2-2dc8bbe1141e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Augustana College, College of DuPage, Knox College, Lake Forest College, Monmouth College, Trinity Christian College, Earlham College, Franklin College, Saint Mary's College, Central College, Coe College, Cornell College, Loras College, Luther College, Northwestern College, Simpson College, Wartburg College, Aquinas College, Adrian College, Alma College, Delta College, Walsh College, Century College, College of St. Scholastica, Concordia College - Moorhead, Macalester College, St. Olaf College, St. Paul College, Culver-Stockton College, Westminster College, William Jewell College, Chadron State College, Clarkson College, Bismarck State College, College of Wooster, Oberlin College and Conservatory, Stark State College, Alverno College, Beloit College, Carthage College and St. Norbert College\n"
     ]
    }
   ],
   "source": [
    "print_list(other)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 34,
   "id": "8a093877-9536-4078-961d-2e34c577e950",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "True"
      ]
     },
     "execution_count": 34,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# These lists should account for all the names in the schools names list \n",
    "set(names)==set((other)+(univ)+(tech)+(com))"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 35,
   "id": "bb37b7c6-9100-4242-9f99-10c326965074",
   "metadata": {},
   "outputs": [],
   "source": [
    "# I want to make a column that lists the school type \n",
    "# and add this to the dataframe \n",
    "\n",
    "school_type=[]\n",
    "\n",
    "# Now we iterate over the values in the 'School Name' column \n",
    "for name in df['School Name'].values:\n",
    "    if name in tech:\n",
    "        school_type.append(\"Tech and Engineering\")\n",
    "    elif name in other:\n",
    "        school_type.append('Other')\n",
    "    elif name in com:\n",
    "        school_type.append('Community College')\n",
    "    elif name in univ:\n",
    "        school_type.append('University')\n",
    "    else:\n",
    "        print(\"ERROR:\",name,\" has no category.\")\n",
    "        "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 36,
   "id": "8c9a6099-1eee-42a4-a009-27695b2fa893",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now add this as a column \n",
    "df['School Type']=school_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 37,
   "id": "954f07d3-2954-47de-9b43-df37ab45fdfd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>State</th>\n",
       "      <th>School Name</th>\n",
       "      <th>City</th>\n",
       "      <th>Class</th>\n",
       "      <th>Program Name</th>\n",
       "      <th>Program Delivery</th>\n",
       "      <th>Program Level</th>\n",
       "      <th>Program Type</th>\n",
       "      <th>Undergraduate Major or Minor</th>\n",
       "      <th>Notes</th>\n",
       "      <th>Link(s) to Program Page</th>\n",
       "      <th>School Type</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Augustana College</td>\n",
       "      <td>Rock Island</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's</td>\n",
       "      <td>Both</td>\n",
       "      <td>Bachelor's in \"Data Analytics\" has two tracks ...</td>\n",
       "      <td>https://augustana.edu/academics/areas-of-study...</td>\n",
       "      <td>Other</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Aurora University</td>\n",
       "      <td>Aurora</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Engineering</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>A program with heavy focus on mathematics,  so...</td>\n",
       "      <td>https://aurora.edu/academics/undergraduate/dat...</td>\n",
       "      <td>University</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Benedictine University</td>\n",
       "      <td>Lisle</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Science</td>\n",
       "      <td>Campus</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Bachelor's (BS)</td>\n",
       "      <td>Major Only</td>\n",
       "      <td>Led by the Department of Mathematical and Comp...</td>\n",
       "      <td>https://ben.edu/degree-programs/data-science/</td>\n",
       "      <td>University</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Bradley University</td>\n",
       "      <td>Peoria</td>\n",
       "      <td>0</td>\n",
       "      <td>Data Science</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Undergraduate</td>\n",
       "      <td>Undergraduate Minor</td>\n",
       "      <td>Minor Only</td>\n",
       "      <td>Only the minor satisfies our classification as...</td>\n",
       "      <td>https://www.bradley.edu/programs/profile.dot?i...</td>\n",
       "      <td>University</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>Illinois</td>\n",
       "      <td>Bradley University</td>\n",
       "      <td>Peoria</td>\n",
       "      <td>3</td>\n",
       "      <td>Data Science and Analytics</td>\n",
       "      <td>Not Specified</td>\n",
       "      <td>Graduate</td>\n",
       "      <td>Master's (MS)</td>\n",
       "      <td>Not Applicable</td>\n",
       "      <td>The program is through the Computer Science an...</td>\n",
       "      <td>https://www.bradley.edu/programs/profile.dot?i...</td>\n",
       "      <td>University</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      State             School Name         City Class  \\\n",
       "0  Illinois       Augustana College  Rock Island     0   \n",
       "1  Illinois       Aurora University       Aurora     0   \n",
       "2  Illinois  Benedictine University        Lisle     0   \n",
       "3  Illinois      Bradley University       Peoria     0   \n",
       "4  Illinois      Bradley University       Peoria     3   \n",
       "\n",
       "                 Program Name Program Delivery  Program Level  \\\n",
       "0              Data Analytics    Not Specified  Undergraduate   \n",
       "1            Data Engineering           Campus  Undergraduate   \n",
       "2                Data Science           Campus  Undergraduate   \n",
       "3                Data Science    Not Specified  Undergraduate   \n",
       "4  Data Science and Analytics    Not Specified       Graduate   \n",
       "\n",
       "          Program Type Undergraduate Major or Minor  \\\n",
       "0           Bachelor's                         Both   \n",
       "1      Bachelor's (BS)                   Major Only   \n",
       "2      Bachelor's (BS)                   Major Only   \n",
       "3  Undergraduate Minor                   Minor Only   \n",
       "4        Master's (MS)               Not Applicable   \n",
       "\n",
       "                                               Notes  \\\n",
       "0  Bachelor's in \"Data Analytics\" has two tracks ...   \n",
       "1  A program with heavy focus on mathematics,  so...   \n",
       "2  Led by the Department of Mathematical and Comp...   \n",
       "3  Only the minor satisfies our classification as...   \n",
       "4  The program is through the Computer Science an...   \n",
       "\n",
       "                             Link(s) to Program Page School Type  \n",
       "0  https://augustana.edu/academics/areas-of-study...       Other  \n",
       "1  https://aurora.edu/academics/undergraduate/dat...  University  \n",
       "2      https://ben.edu/degree-programs/data-science/  University  \n",
       "3  https://www.bradley.edu/programs/profile.dot?i...  University  \n",
       "4  https://www.bradley.edu/programs/profile.dot?i...  University  "
      ]
     },
     "execution_count": 37,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df.head()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 38,
   "id": "11dc0ce6-6c81-44ae-8254-a3889c2078ab",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now, we want to create subsets of the dataframe based on each of these\n",
    "# lists of school names \n",
    "\n",
    "# Community College dataframe \n",
    "com_df = df[df['School Name'].isin(com)]\n",
    "\n",
    "# Tech data frame \n",
    "tech_df = df[df['School Name'].isin(tech)]\n",
    "\n",
    "# University data frame \n",
    "univ_df=df[df['School Name'].isin(univ)]\n",
    "\n",
    "# Other Colleges \n",
    "other_df=df[df['School Name'].isin(other)]"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "339fda5c-6c76-47ad-a5e8-65bfbc793333",
   "metadata": {},
   "source": [
    "## Community Colleges"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 40,
   "id": "69f4d64f-2ff4-4e45-9644-57534c42c4b8",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Class\n",
       "0     3\n",
       "1     0\n",
       "2     0\n",
       "3    14\n",
       "Name: Community College, dtype: int64"
      ]
     },
     "execution_count": 40,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# For each of these dataframes, we want to see the value counts for \n",
    "# classifications.\n",
    "\n",
    "com_distr=com_df['Class'].value_counts().sort_index()\n",
    "com_distr.name='Community College'\n",
    "com_distr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 41,
   "id": "4d93f518-4d71-4923-85b8-759306b78f13",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aless\\AppData\\Local\\Temp\\ipykernel_63984\\952549138.py:1: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
      "  class_by_type=com_df['Class'].cat.remove_unused_categories().groupby(com_df['Program Type'].cat.remove_unused_categories()).value_counts().unstack()\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate's</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Associates's (AS)</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Career Certificate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Microcertificate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Technical Certificate</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                  0  3\n",
       "Program Type               \n",
       "Associate's            0  1\n",
       "Associates's (AS)      2  0\n",
       "Career Certificate     0  1\n",
       "Certificate            1  9\n",
       "Microcertificate       0  1\n",
       "Technical Certificate  0  2"
      ]
     },
     "execution_count": 41,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "class_by_type=com_df['Class'].cat.remove_unused_categories().groupby(com_df['Program Type'].cat.remove_unused_categories()).value_counts().unstack()\n",
    "class_by_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 42,
   "id": "a9b5110a-dfce-4fd6-b426-12e42969dfab",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(17, 12)"
      ]
     },
     "execution_count": 42,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# How many schools are there?  How many programs are there? \n",
    "\n",
    "com_df.shape"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 43,
   "id": "64d3651e-b069-450d-9665-4a4381f95e9e",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " There are 15 unique community colleges.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "print('\\n There are', len(com_df['School Name'].unique()), 'unique community colleges.\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "id": "9447b4bc-a41f-4aba-ae51-59b3d1c87535",
   "metadata": {},
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": 44,
   "id": "98988135-cc5e-4ed4-bb03-58d4b4c47ff2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>1</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class         0  3\n",
       "Program Type      \n",
       "Associate     0  1\n",
       "Associate     2  0\n",
       "Certificate   0  1\n",
       "Certificate   1  9\n",
       "Certificate   0  1\n",
       "Certificate   0  2"
      ]
     },
     "execution_count": 44,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Associates of any kind go to associates, and certificates to certificates \n",
    "for label in class_by_type.index:\n",
    "    if 'Associate' in label:\n",
    "        class_by_type.rename(index={label: 'Associate'},inplace=True)\n",
    "    if 'Certificate' in label:\n",
    "        class_by_type.rename(index={label: 'Certificate'},inplace=True)\n",
    "    if 'Microcertificate' in label:\n",
    "        class_by_type.rename(index={label: 'Certificate'},inplace=True)\n",
    "class_by_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 45,
   "id": "87475adb-db52-4f7f-8069-d1c2970ab0e6",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>1</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class         0   3\n",
       "Program Type       \n",
       "Associate     2   1\n",
       "Certificate   1  13"
      ]
     },
     "execution_count": 45,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Group the previous class_by_type by index and show the sum\n",
    "\n",
    "class_by_type.groupby(class_by_type.index).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 46,
   "id": "ac3fb8d6-b723-4bf2-82f6-32fe82b17bae",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Community College</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Community College\n",
       "Class                   \n",
       "0                      3\n",
       "1                      0\n",
       "2                      0\n",
       "3                     14"
      ]
     },
     "execution_count": 46,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Take 'com_distr\" and turn it into a dataframe \n",
    "\n",
    "com = pd.DataFrame(com_distr)\n",
    "\n",
    "# Change index to category type \n",
    "com.index=com.index.astype('category')\n",
    "\n",
    "com"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 47,
   "id": "1941dd7b-5801-408b-95d8-0a038a8b76a7",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Add a column to hold the percentage \n",
    "\n",
    "total = com_distr.sum()\n",
    "\n",
    "com['Percentage']=round(com['Community College']/total * 100,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 48,
   "id": "b05b0d1d-2b01-49f6-8e79-66310e42365a",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Community College</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>17.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>14</td>\n",
       "      <td>82.35</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Community College  Percentage\n",
       "Class                               \n",
       "0                      3       17.65\n",
       "1                      0        0.00\n",
       "2                      0        0.00\n",
       "3                     14       82.35"
      ]
     },
     "execution_count": 48,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "com"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "99f05c19-0f0a-4672-b4a1-ed7e1769db64",
   "metadata": {},
   "source": [
    "## Technology, Technical and Engineering"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 50,
   "id": "a905fea2-2ee3-45dc-9794-823effdb44dc",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Class\n",
       "0     6\n",
       "1     2\n",
       "2     1\n",
       "3    20\n",
       "Name: Technology, Technical and Engineering, dtype: int64"
      ]
     },
     "execution_count": 50,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the number of programs per classification store it in a series called tech_distr\n",
    "\n",
    "tech_distr=tech_df['Class'].value_counts().sort_index()\n",
    "\n",
    "# Rename it \n",
    "tech_distr.name = 'Technology, Technical and Engineering'\n",
    "\n",
    "tech_distr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 51,
   "id": "fafe5d78-318e-4856-8ce0-53609d321a10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Technology, Technical and Engineering</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Technology, Technical and Engineering\n",
       "Class                                       \n",
       "0                                          6\n",
       "1                                          2\n",
       "2                                          1\n",
       "3                                         20"
      ]
     },
     "execution_count": 51,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make this a dataframe so we can also have a column for proportion of classes \n",
    "\n",
    "tech=pd.DataFrame(\n",
    "    tech_distr)\n",
    "\n",
    "# Change index to category type \n",
    "tech.index=tech.index.astype('category')\n",
    "\n",
    "tech"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 52,
   "id": "218478ad-50d0-4190-8d7c-bcae33ff9c2e",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Now, add a column to hold the class count as proportion of total \n",
    "\n",
    "# Get the total number of programs of this category of schools\n",
    "\n",
    "total = tech_distr.sum()\n",
    "\n",
    "# Get the name of the column (without having to type it)\n",
    "col = tech.columns[0]\n",
    "\n",
    "# Add a column for percentage which is the first column (col) divided by total (times 100)  to write it as a percentage, and rounded to two decimals \n",
    "tech['Percentage']=round(tech[col]/total * 100,2)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 53,
   "id": "8435a843-0fc7-4d44-a6c3-dfddd7a3e760",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Technology, Technical and Engineering</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>20.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>6.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20</td>\n",
       "      <td>68.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Technology, Technical and Engineering  Percentage\n",
       "Class                                                   \n",
       "0                                          6       20.69\n",
       "1                                          2        6.90\n",
       "2                                          1        3.45\n",
       "3                                         20       68.97"
      ]
     },
     "execution_count": 53,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tech"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 54,
   "id": "e16264e0-a21a-4fd4-a465-2c5abe09af68",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " There are 29 programs for technology, technical and engineering schools.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# How many programs are there for the tech and engineering schools? \n",
    "\n",
    "print('\\n There are',tech_df.shape[0],'programs for technology, technical and engineering schools.\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 55,
   "id": "0bb22d66-92b7-4db8-b137-ce3b491b7d48",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " There are 16 unique tech/engineering schools.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# How many distinct schools are there? \n",
    "\n",
    "val = len(tech_df['School Name'].unique())\n",
    "\n",
    "print('\\n There are', val, 'unique tech/engineering schools.\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 56,
   "id": "e6af88f7-dbee-4f9c-aa9e-6e27d1d2ba83",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aless\\AppData\\Local\\Temp\\ipykernel_63984\\1715577223.py:3: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
      "  prog_types=tech_df['Class'].groupby(tech_df['Program Type']\\\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate's</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Associate's (AAS)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BS)</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctorate (Ph.D)</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master's (MS)</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Apprenticeship</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                         0  1  2   3\n",
       "Program Type                             \n",
       "Associate's                   0  0  0   8\n",
       "Associate's (AAS)             0  0  0   1\n",
       "Bachelor's                    0  1  0   0\n",
       "Bachelor's (BS)               2  0  1   0\n",
       "Certificate                   1  0  0  10\n",
       "Doctorate (Ph.D)              0  1  0   0\n",
       "Master's (MS)                 2  0  0   0\n",
       "Undergraduate Apprenticeship  0  0  0   1\n",
       "Undergraduate Minor           1  0  0   0"
      ]
     },
     "execution_count": 56,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# How do the program types vary? \n",
    "\n",
    "prog_types=tech_df['Class'].groupby(tech_df['Program Type']\\\n",
    "    .cat.remove_unused_categories()).value_counts().unstack()\n",
    "\n",
    "prog_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 57,
   "id": "aa0fb687-8a1f-40ec-a8a7-51acfa822c21",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Let's group the Bachelors, Associates\n",
    "for label in prog_types.index:\n",
    "    if 'Associate' in label:\n",
    "        prog_types.rename(index={label: 'Associate'},inplace=True)\n",
    "    if 'Bachelor' in label:\n",
    "        prog_types.rename(index={label: 'Bachelor'},inplace=True)\n",
    "\n",
    "# Rename the doctorate and masters \n",
    "prog_types.rename(index={'Doctorate (Ph.D)': 'Doctorate', \"Master's (MS)\": \"Master\"},inplace=True)\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 58,
   "id": "506aa6b1-946d-4f70-adc6-3b213ff61d02",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "['Bachelor's', 'Bachelor's (BS)', 'Undergraduate Minor', 'Master's (MS)', 'Certificate', ..., 'Master's (MA)', 'Master's (MBA)', 'Career Certificate', 'Associate's', 'Undergraduate Apprenticeship']\n",
       "Length: 21\n",
       "Categories (21, object): ['Associate's', 'Associate's (AAS)', 'Associates's (AS)', 'Bachelor's', ..., 'Microcertificate', 'Technical Certificate', 'Undergraduate Apprenticeship', 'Undergraduate Minor']"
      ]
     },
     "execution_count": 58,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "df['Program Type'].unique()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 59,
   "id": "d715b7a4-5d3a-4565-9294-a6af3eacf5ba",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>10</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctorate</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Apprenticeship</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                         0  1  2   3\n",
       "Program Type                             \n",
       "Associate                     0  0  0   9\n",
       "Bachelor                      2  1  1   0\n",
       "Certificate                   1  0  0  10\n",
       "Doctorate                     0  1  0   0\n",
       "Master                        2  0  0   0\n",
       "Undergraduate Apprenticeship  0  0  0   1\n",
       "Undergraduate Minor           1  0  0   0"
      ]
     },
     "execution_count": 59,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now group that by index and sum \n",
    "\n",
    "prog_types.groupby(prog_types.index).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 60,
   "id": "e8e872fb-5196-4d02-a412-48a0240e6d1f",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Class\n",
       "0     6\n",
       "1     2\n",
       "2     1\n",
       "3    20\n",
       "Name: Technology, Technical and Engineering, dtype: int64"
      ]
     },
     "execution_count": 60,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tech_distr"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "22f40df4-096a-4dbb-b68f-66aa7eeb9b9d",
   "metadata": {},
   "source": [
    "## Universities"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 62,
   "id": "827af770-4043-4d6b-bb00-9905e9b91b4b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Class\n",
       "0    176\n",
       "1     17\n",
       "2     21\n",
       "3     94\n",
       "Name: Universities, dtype: int64"
      ]
     },
     "execution_count": 62,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Let's sort the university data and get value counts per class\n",
    "# and let's store it as \"univ_distr\"\n",
    "univ_distr=univ_df['Class'].value_counts().sort_index()\n",
    "\n",
    "# Give it a better name \n",
    "univ_distr.name = 'Universities'\n",
    "\n",
    "univ_distr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 63,
   "id": "8c33c498-d74c-4d5c-acc9-29716a9cd5f2",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Universities</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Universities\n",
       "Class              \n",
       "0               176\n",
       "1                17\n",
       "2                21\n",
       "3                94"
      ]
     },
     "execution_count": 63,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Turn university data into a dataframe \n",
    "\n",
    "univ=pd.DataFrame(\n",
    "    univ_distr)\n",
    "\n",
    "# Change index to category type \n",
    "univ.index=univ.index.astype('category')\n",
    "\n",
    "univ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 64,
   "id": "f099b0b8-4e61-44f6-9f34-a21b2dc8bbac",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Universities</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>176</td>\n",
       "      <td>57.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>17</td>\n",
       "      <td>5.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "      <td>6.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>94</td>\n",
       "      <td>30.52</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Universities  Percentage\n",
       "Class                          \n",
       "0               176       57.14\n",
       "1                17        5.52\n",
       "2                21        6.82\n",
       "3                94       30.52"
      ]
     },
     "execution_count": 64,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the total number of univerisites \n",
    "total = univ_distr.sum()\n",
    "\n",
    "# Add a column for percentage which is the first column (Universities)\n",
    "# divided by total (times 100)\n",
    "# to write it as a percentage, and rounded to two decimals \n",
    "univ['Percentage']=round(univ['Universities']/total * 100,2)\n",
    "\n",
    "univ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 65,
   "id": "770505d7-86c9-4df5-9db0-e05de2ae49ac",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " There are 175 unique universities.\n",
      "\n",
      " There are 308 unique programs offered by these universities.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Now get the basics \n",
    "\n",
    "print('\\n There are', len(univ_df['School Name'].unique()), 'unique universities.')\n",
    "\n",
    "print('\\n There are', univ_df.shape[0], 'unique programs offered by these universities.\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 66,
   "id": "e8b3258a-364e-4a52-bd04-4d498b2aa854",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aless\\AppData\\Local\\Temp\\ipykernel_63984\\4214175245.py:3: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
      "  univ_type=univ_df['Class'].groupby(univ_df['Program Type']\\\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associates's (AS)</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's</th>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BA)</th>\n",
       "      <td>9</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BA/BS)</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BBA)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BS)</th>\n",
       "      <td>64</td>\n",
       "      <td>8</td>\n",
       "      <td>14</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BSBA)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctoral Minor</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctorate (Ph.D)</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Graduate Minor</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master's (MA)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master's (MBA)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master's (MS)</th>\n",
       "      <td>34</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>20</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0  1   2   3\n",
       "Program Type                      \n",
       "Associates's (AS)     1  0   0   0\n",
       "Bachelor's           15  1   1   2\n",
       "Bachelor's (BA)       9  2   1   0\n",
       "Bachelor's (BA/BS)    4  1   2   0\n",
       "Bachelor's (BBA)      0  0   0   1\n",
       "Bachelor's (BS)      64  8  14   8\n",
       "Bachelor's (BSBA)     0  0   0   2\n",
       "Certificate          23  1   0  45\n",
       "Doctoral Minor        3  0   0   0\n",
       "Doctorate (Ph.D)      3  0   1   1\n",
       "Graduate Minor        0  1   0   0\n",
       "Master's (MA)         0  0   1   0\n",
       "Master's (MBA)        0  0   0   1\n",
       "Master's (MS)        34  3   1  25\n",
       "Undergraduate Minor  20  0   0   9"
      ]
     },
     "execution_count": 66,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now let's figure out the number of programs per classification \n",
    "\n",
    "univ_type=univ_df['Class'].groupby(univ_df['Program Type']\\\n",
    "    .cat.remove_unused_categories()).value_counts().unstack()\n",
    "\n",
    "univ_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 67,
   "id": "4ece758c-f838-4789-ba29-732ae6481dc0",
   "metadata": {},
   "outputs": [],
   "source": [
    "# Many things we want to rename here. \n",
    "\n",
    "# Relabel automatic things \n",
    "\n",
    "univ_type.rename(index={\"Associates's (AS)\":\"Associate\",\\\n",
    "                            \"Doctorate (Ph.D)\": \"Doctorate\"},inplace=True)\n",
    "\n",
    "# For the non-automatic ones (i.e. the 1-1 changes):\n",
    "\n",
    "for label in univ_type.index:\n",
    "    if 'Bachelor' in label:\n",
    "        univ_type.rename(index={label:\"Bachelor\"},inplace=True)\n",
    "    if 'Master' in label:\n",
    "        univ_type.rename(index={label:\"Master\"},inplace=True)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 68,
   "id": "58ac5784-8383-416a-a819-f1b73ecd3098",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>15</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>9</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>64</td>\n",
       "      <td>8</td>\n",
       "      <td>14</td>\n",
       "      <td>8</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctoral Minor</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctorate</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Graduate Minor</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>34</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>25</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>20</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0  1   2   3\n",
       "Program Type                      \n",
       "Associate             1  0   0   0\n",
       "Bachelor             15  1   1   2\n",
       "Bachelor              9  2   1   0\n",
       "Bachelor              4  1   2   0\n",
       "Bachelor              0  0   0   1\n",
       "Bachelor             64  8  14   8\n",
       "Bachelor              0  0   0   2\n",
       "Certificate          23  1   0  45\n",
       "Doctoral Minor        3  0   0   0\n",
       "Doctorate             3  0   1   1\n",
       "Graduate Minor        0  1   0   0\n",
       "Master                0  0   1   0\n",
       "Master                0  0   0   1\n",
       "Master               34  3   1  25\n",
       "Undergraduate Minor  20  0   0   9"
      ]
     },
     "execution_count": 68,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "univ_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 69,
   "id": "c5804fda-b4b2-440c-8952-cd0daed24901",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>92</td>\n",
       "      <td>12</td>\n",
       "      <td>18</td>\n",
       "      <td>13</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>23</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctoral Minor</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Doctorate</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Graduate Minor</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>34</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>26</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>20</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0   1   2   3\n",
       "Program Type                       \n",
       "Associate             1   0   0   0\n",
       "Bachelor             92  12  18  13\n",
       "Certificate          23   1   0  45\n",
       "Doctoral Minor        3   0   0   0\n",
       "Doctorate             3   0   1   1\n",
       "Graduate Minor        0   1   0   0\n",
       "Master               34   3   2  26\n",
       "Undergraduate Minor  20   0   0   9"
      ]
     },
     "execution_count": 69,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now group by them by index \n",
    "\n",
    "univ_type.groupby(univ_type.index).sum()"
   ]
  },
  {
   "cell_type": "markdown",
   "id": "0841a2e8-eb29-48ba-b6ab-7769ec1f5505",
   "metadata": {},
   "source": [
    "## Other Schools \n",
    "\n",
    "The other schools are not community colleges, universities or schools whose name includes 'Tech' or 'Engineering'.  Some of these schools have 'college' in their name and some do not. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 71,
   "id": "3b98733f-901b-4c82-a09e-2c0eaf18fb3b",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "Class\n",
       "0    36\n",
       "1     1\n",
       "2     4\n",
       "3     9\n",
       "Name: Other, dtype: int64"
      ]
     },
     "execution_count": 71,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the number of programs of each classification and call it other_distr\n",
    "other_distr=other_df['Class'].value_counts().sort_index()\n",
    "\n",
    "# change the name \n",
    "\n",
    "other_distr.name='Other'\n",
    "\n",
    "other_distr"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 72,
   "id": "5b7b7507-1400-47fb-9500-e024be5447bd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Other</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Other\n",
       "Class       \n",
       "0         36\n",
       "1          1\n",
       "2          4\n",
       "3          9"
      ]
     },
     "execution_count": 72,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Turn other data into a dataframe \n",
    "\n",
    "other=pd.DataFrame(\n",
    "    other_distr)\n",
    "\n",
    "# Change index to category type \n",
    "other.index=other.index.astype('category')\n",
    "\n",
    "other"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 73,
   "id": "f73546a6-7e46-49f9-9908-716a21d7a11c",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Other</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>36</td>\n",
       "      <td>72.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Other  Percentage\n",
       "Class                   \n",
       "0         36        72.0\n",
       "1          1         2.0\n",
       "2          4         8.0\n",
       "3          9        18.0"
      ]
     },
     "execution_count": 73,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# get the total programs offered by other schools\n",
    "\n",
    "total = other_distr.sum()\n",
    "\n",
    "# Add a column for percentage which is the first column (Other)\n",
    "# divided by total (times 100)\n",
    "# to write it as a percentage, and rounded to two decimals \n",
    "other['Percentage']=round(other['Other']/total * 100,2)\n",
    "\n",
    "other\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 74,
   "id": "8e8d9d86-1747-4f3e-80f3-837bc2cc6bef",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "\n",
      " There are 41 unique other schools.\n",
      "\n",
      " There are 50 unique programs offered by these universities.\n",
      "\n"
     ]
    }
   ],
   "source": [
    "# Now get the basics \n",
    "\n",
    "print('\\n There are', len(other_df['School Name'].unique()), 'unique other schools.')\n",
    "\n",
    "print('\\n There are', other_df.shape[0], 'unique programs offered by these universities.\\n')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 75,
   "id": "0764b253-869c-4de4-a7b0-505aef586f37",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aless\\AppData\\Local\\Temp\\ipykernel_63984\\2380358862.py:3: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
      "  other_type=other_df['Class'].groupby(other_df['Program Type']\\\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate's (AAS)</th>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Associates's (AS)</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's</th>\n",
       "      <td>10</td>\n",
       "      <td>1</td>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BA)</th>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor's (BS)</th>\n",
       "      <td>4</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master's (MS)</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0  1  2  3\n",
       "Program Type                    \n",
       "Associate's (AAS)     0  0  0  1\n",
       "Associates's (AS)     2  0  0  0\n",
       "Bachelor's           10  1  3  0\n",
       "Bachelor's (BA)       7  0  1  0\n",
       "Bachelor's (BS)       4  0  0  1\n",
       "Certificate           5  0  0  5\n",
       "Master's (MS)         1  0  0  2\n",
       "Undergraduate Minor   7  0  0  0"
      ]
     },
     "execution_count": 75,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now let's figure out the number of programs per classification \n",
    "\n",
    "other_type=other_df['Class'].groupby(other_df['Program Type']\\\n",
    "    .cat.remove_unused_categories()).value_counts().unstack()\n",
    "\n",
    "other_type"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 76,
   "id": "9e8c7d05-e785-4c07-bac4-f936b587c4c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Program Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Associate</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Bachelor</th>\n",
       "      <td>21</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Certificate</th>\n",
       "      <td>5</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>5</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Master</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>2</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Undergraduate Minor</th>\n",
       "      <td>7</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0  1  2  3\n",
       "Program Type                    \n",
       "Associate             2  0  0  1\n",
       "Bachelor             21  1  4  1\n",
       "Certificate           5  0  0  5\n",
       "Master                1  0  0  2\n",
       "Undergraduate Minor   7  0  0  0"
      ]
     },
     "execution_count": 76,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "for label in other_type.index:\n",
    "    if 'Bachelor' in label:\n",
    "        other_type.rename(index={label:\"Bachelor\"},inplace=True)\n",
    "    if 'Master' in label:\n",
    "        other_type.rename(index={label:\"Master\"},inplace=True)\n",
    "    if \"Associate\" in label:\n",
    "        other_type.rename(index={label:\"Associate\"},inplace=True)\n",
    "\n",
    "other_type.groupby(other_type.index).sum()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 77,
   "id": "5aae0761-341d-444b-8945-3a3b2c221612",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Other</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>36</td>\n",
       "      <td>72.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>1</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>4</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>9</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Other  Percentage\n",
       "Class                   \n",
       "0         36        72.0\n",
       "1          1         2.0\n",
       "2          4         8.0\n",
       "3          9        18.0"
      ]
     },
     "execution_count": 77,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "other"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 78,
   "id": "5713d36c-a231-4b2b-9e4c-e3b2d628c6d3",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Universities</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>176</td>\n",
       "      <td>57.14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>17</td>\n",
       "      <td>5.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>21</td>\n",
       "      <td>6.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>94</td>\n",
       "      <td>30.52</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Universities  Percentage\n",
       "Class                          \n",
       "0               176       57.14\n",
       "1                17        5.52\n",
       "2                21        6.82\n",
       "3                94       30.52"
      ]
     },
     "execution_count": 78,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "univ"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 79,
   "id": "8525468e-2da1-40b1-a4a3-261b0c0fab04",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Community College</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>17.65</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>0.00</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>14</td>\n",
       "      <td>82.35</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Community College  Percentage\n",
       "Class                               \n",
       "0                      3       17.65\n",
       "1                      0        0.00\n",
       "2                      0        0.00\n",
       "3                     14       82.35"
      ]
     },
     "execution_count": 79,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "com"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 80,
   "id": "95036298-3d9d-4767-a07e-089df7b7eb40",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Technology, Technical and Engineering</th>\n",
       "      <th>Percentage</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>20.69</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>6.90</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>3.45</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20</td>\n",
       "      <td>68.97</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Technology, Technical and Engineering  Percentage\n",
       "Class                                                   \n",
       "0                                          6       20.69\n",
       "1                                          2        6.90\n",
       "2                                          1        3.45\n",
       "3                                         20       68.97"
      ]
     },
     "execution_count": 80,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "tech"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 81,
   "id": "4c83d3d3-8691-4e3a-bcdf-a1ccf71d0281",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <th>Community College</th>\n",
       "      <th>Universities</th>\n",
       "      <th>Other Colleges</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.69</td>\n",
       "      <td>17.65</td>\n",
       "      <td>57.14</td>\n",
       "      <td>72.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6.90</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.52</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3.45</td>\n",
       "      <td>0.00</td>\n",
       "      <td>6.82</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>68.97</td>\n",
       "      <td>82.35</td>\n",
       "      <td>30.52</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Tech & Engineering  Community College  Universities  Other Colleges\n",
       "Class                                                                     \n",
       "0                   20.69              17.65         57.14            72.0\n",
       "1                    6.90               0.00          5.52             2.0\n",
       "2                    3.45               0.00          6.82             8.0\n",
       "3                   68.97              82.35         30.52            18.0"
      ]
     },
     "execution_count": 81,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make a new dataframe that holds just the percentages \n",
    "\n",
    "percent=pd.DataFrame(\n",
    "    {'Tech & Engineering': tech['Percentage'].values,\\\n",
    "        'Community College': com['Percentage'].values,\\\n",
    "        'Universities': univ['Percentage'].values,\\\n",
    "        'Other Colleges': other['Percentage'].values}, index=tech.index)\n",
    "\n",
    "# change index to category type\n",
    "\n",
    "percent.index=percent.index.astype('category')\n",
    "\n",
    "percent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 82,
   "id": "0dcf4759-2d92-4fa1-8f56-9bc2611cd174",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <th>Community College</th>\n",
       "      <th>Universities</th>\n",
       "      <th>Other Colleges</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20.69</td>\n",
       "      <td>17.65</td>\n",
       "      <td>57.14</td>\n",
       "      <td>72.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>6.90</td>\n",
       "      <td>0.00</td>\n",
       "      <td>5.52</td>\n",
       "      <td>2.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>3.45</td>\n",
       "      <td>0.00</td>\n",
       "      <td>6.82</td>\n",
       "      <td>8.0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>68.97</td>\n",
       "      <td>82.35</td>\n",
       "      <td>30.52</td>\n",
       "      <td>18.0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Tech & Engineering  Community College  Universities  Other Colleges\n",
       "Class                                                                     \n",
       "0                   20.69              17.65         57.14            72.0\n",
       "1                    6.90               0.00          5.52             2.0\n",
       "2                    3.45               0.00          6.82             8.0\n",
       "3                   68.97              82.35         30.52            18.0"
      ]
     },
     "execution_count": 82,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "percent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 83,
   "id": "87e903dc-c352-4b36-ad24-58d5c32370bf",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <td>20.69</td>\n",
       "      <td>6.90</td>\n",
       "      <td>3.45</td>\n",
       "      <td>68.97</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Community College</th>\n",
       "      <td>17.65</td>\n",
       "      <td>0.00</td>\n",
       "      <td>0.00</td>\n",
       "      <td>82.35</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Universities</th>\n",
       "      <td>57.14</td>\n",
       "      <td>5.52</td>\n",
       "      <td>6.82</td>\n",
       "      <td>30.52</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other Colleges</th>\n",
       "      <td>72.00</td>\n",
       "      <td>2.00</td>\n",
       "      <td>8.00</td>\n",
       "      <td>18.00</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                   0     1     2      3\n",
       "Tech & Engineering  20.69  6.90  3.45  68.97\n",
       "Community College   17.65  0.00  0.00  82.35\n",
       "Universities        57.14  5.52  6.82  30.52\n",
       "Other Colleges      72.00  2.00  8.00  18.00"
      ]
     },
     "execution_count": 83,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now take the transpose \n",
    "\n",
    "percent=percent.T\n",
    "percent"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 84,
   "id": "ee6971e4-c61e-43d1-a891-8d967a461083",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \\begin{tabular}{ c c c c c }\n",
      "  & 0 & 1 & 2 & 3\\\\ \n",
      " Tech & Engineering & 20.69 & 6.9 & 3.45 & 68.97\\\\ \n",
      " Community College & 17.65 & 0.0 & 0.0 & 82.35\\\\ \n",
      " Universities & 57.14 & 5.52 & 6.82 & 30.52\\\\ \n",
      " Other Colleges & 72.0 & 2.0 & 8.0 & 18.0\\\\ \n",
      "\\end{tabular}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'Table Complete'"
      ]
     },
     "execution_count": 84,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make a LaTeX table for this ...table \n",
    "\n",
    "latex_table(percent,hline=None,vline=None,header_sep=None,align='c')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 85,
   "id": "1c81d647-c14a-435a-b6ab-150711f9d9fe",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/plain": [
       "array([ 6,  2,  1, 20], dtype=int64)"
      ]
     },
     "execution_count": 85,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Get the numbers of each school type \n",
    "\n",
    "tech[tech.columns[0]].values"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 86,
   "id": "35ced59d-2956-4a87-b84a-02b94a19aa10",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <th>Community College</th>\n",
       "      <th>Universities</th>\n",
       "      <th>Other Colleges</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>6</td>\n",
       "      <td>3</td>\n",
       "      <td>176</td>\n",
       "      <td>36</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2</td>\n",
       "      <td>0</td>\n",
       "      <td>17</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>1</td>\n",
       "      <td>0</td>\n",
       "      <td>21</td>\n",
       "      <td>4</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>20</td>\n",
       "      <td>14</td>\n",
       "      <td>94</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "       Tech & Engineering  Community College  Universities  Other Colleges\n",
       "Class                                                                     \n",
       "0                       6                  3           176              36\n",
       "1                       2                  0            17               1\n",
       "2                       1                  0            21               4\n",
       "3                      20                 14            94               9"
      ]
     },
     "execution_count": 86,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Make a new dataframe that holds just numbers of each school type\n",
    "\n",
    "school_types=pd.DataFrame(\n",
    "    {'Tech & Engineering': tech[tech.columns[0]].values,\\\n",
    "        'Community College': com[com.columns[0]].values,\\\n",
    "        'Universities': univ[univ.columns[0]].values,\\\n",
    "        'Other Colleges': other[other.columns[0]].values}, index=tech.index)\n",
    "\n",
    "# change index to category type\n",
    "school_types.index=school_types.index.astype('category') \n",
    "\n",
    "school_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 87,
   "id": "3dd3986d-de11-4f17-92e6-d24681dcf6c1",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Community College</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Universities</th>\n",
       "      <td>176</td>\n",
       "      <td>17</td>\n",
       "      <td>21</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other Colleges</th>\n",
       "      <td>36</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0   1   2   3\n",
       "Tech & Engineering    6   2   1  20\n",
       "Community College     3   0   0  14\n",
       "Universities        176  17  21  94\n",
       "Other Colleges       36   1   4   9"
      ]
     },
     "execution_count": 87,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Now take the transpose this frame \n",
    "\n",
    "school_types = school_types.T\n",
    "school_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 88,
   "id": "378db1f7-0166-4a0d-924b-b4f86635341c",
   "metadata": {},
   "outputs": [],
   "source": [
    "school_types['Total Programs']=school_types.sum(axis=1)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 89,
   "id": "fbb1e10e-a8da-4e73-816b-5be4acdc7ccd",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>Total Programs</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Tech &amp; Engineering</th>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Community College</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Universities</th>\n",
       "      <td>176</td>\n",
       "      <td>17</td>\n",
       "      <td>21</td>\n",
       "      <td>94</td>\n",
       "      <td>308</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other Colleges</th>\n",
       "      <td>36</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                 0   1   2   3  Total Programs\n",
       "Tech & Engineering    6   2   1  20              29\n",
       "Community College     3   0   0  14              17\n",
       "Universities        176  17  21  94             308\n",
       "Other Colleges       36   1   4   9              50"
      ]
     },
     "execution_count": 89,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "school_types"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 90,
   "id": "1020734a-b594-4c30-bfa9-4cb69c157f89",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \\begin{tabular}{ c c c c c c }\n",
      "  & 0 & 1 & 2 & 3 & Total Programs\\\\ \n",
      " Tech & Engineering & 6 & 2 & 1 & 20 & 29\\\\ \n",
      " Community College & 3 & 0 & 0 & 14 & 17\\\\ \n",
      " Universities & 176 & 17 & 21 & 94 & 308\\\\ \n",
      " Other Colleges & 36 & 1 & 4 & 9 & 50\\\\ \n",
      "\\end{tabular}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'Table Complete'"
      ]
     },
     "execution_count": 90,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "latex_table(school_types,align='c')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 91,
   "id": "9351dd94-cca5-4865-850f-3013c8e500e9",
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\aless\\AppData\\Local\\Temp\\ipykernel_63984\\2983652250.py:2: FutureWarning: The default of observed=False is deprecated and will be changed to True in a future version of pandas. Pass observed=False to retain current behavior or observed=True to adopt the future default and silence this warning.\n",
      "  df['School Type'].groupby(df['Class']).value_counts().unstack()\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>School Type</th>\n",
       "      <th>Community College</th>\n",
       "      <th>Other</th>\n",
       "      <th>Tech and Engineering</th>\n",
       "      <th>University</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Class</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>3</td>\n",
       "      <td>36</td>\n",
       "      <td>6</td>\n",
       "      <td>176</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0</td>\n",
       "      <td>4</td>\n",
       "      <td>1</td>\n",
       "      <td>21</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>14</td>\n",
       "      <td>9</td>\n",
       "      <td>20</td>\n",
       "      <td>94</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "School Type  Community College  Other  Tech and Engineering  University\n",
       "Class                                                                  \n",
       "0                            3     36                     6         176\n",
       "1                            0      1                     2          17\n",
       "2                            0      4                     1          21\n",
       "3                           14      9                    20          94"
      ]
     },
     "execution_count": 91,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "# Let's take the school type and group by classification \n",
    "df['School Type'].groupby(df['Class']).value_counts().unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 92,
   "id": "354e50a2-1b3e-4189-a29c-a4d6fd952ff3",
   "metadata": {},
   "outputs": [],
   "source": [
    "school_type_df=df['Class'].groupby(df['School Type']).value_counts().unstack()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 93,
   "id": "052a0029-a614-46bd-a018-43f91b6d5134",
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th>Class</th>\n",
       "      <th>0</th>\n",
       "      <th>1</th>\n",
       "      <th>2</th>\n",
       "      <th>3</th>\n",
       "      <th>Total Programs</th>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>School Type</th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "      <th></th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>Community College</th>\n",
       "      <td>3</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>14</td>\n",
       "      <td>17</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Other</th>\n",
       "      <td>36</td>\n",
       "      <td>1</td>\n",
       "      <td>4</td>\n",
       "      <td>9</td>\n",
       "      <td>50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Tech and Engineering</th>\n",
       "      <td>6</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>20</td>\n",
       "      <td>29</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>University</th>\n",
       "      <td>176</td>\n",
       "      <td>17</td>\n",
       "      <td>21</td>\n",
       "      <td>94</td>\n",
       "      <td>308</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "Class                   0   1   2   3  Total Programs\n",
       "School Type                                          \n",
       "Community College       3   0   0  14              17\n",
       "Other                  36   1   4   9              50\n",
       "Tech and Engineering    6   2   1  20              29\n",
       "University            176  17  21  94             308"
      ]
     },
     "execution_count": 93,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "school_type_df['Total Programs']=school_type_df.sum(axis=1)\n",
    "school_type_df"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 94,
   "id": "738bb864-b349-47f2-bc13-c7e8bc7ac654",
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \\begin{tabular}{ c c c c c c }\n",
      "School Type & 0 & 1 & 2 & 3 & Total Programs\\\\ \n",
      " Community College & 3 & 0 & 0 & 14 & 17\\\\ \n",
      " Other & 36 & 1 & 4 & 9 & 50\\\\ \n",
      " Tech and Engineering & 6 & 2 & 1 & 20 & 29\\\\ \n",
      " University & 176 & 17 & 21 & 94 & 308\\\\ \n",
      "\\end{tabular}\n"
     ]
    },
    {
     "data": {
      "text/plain": [
       "'Table Complete'"
      ]
     },
     "execution_count": 94,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "latex_table(school_type_df,align='c')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 95,
   "id": "9cfd9aa5-8f95-4e5c-b28a-212059fb6857",
   "metadata": {
    "scrolled": true
   },
   "outputs": [
    {
     "data": {
      "image/png": "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tGghR0dH/fXXX6pVq1a6DwDIzbhPOwDYseDgYEVERKh///6qWbOmXn31VVWuXFlJSUk6cOCA5syZoypVqljMnH671q1ba+rUqeratateeeUVXbhwQVOmTElT9M6ePVubN29W69atVbJkSd24cUNz586VJDVt2lTSzfusu7m5qV69evLz81NMTIzCw8NVoEAB8y2/7keDBg304osvasKECTp37pzatGkjFxcXHThwQPnz59egQYMUEhKiRx55RP369dM777wjJycnffHFF2kKU0mqWrWqpJunords2VIODg6qVq2anJ2d0/QdNmyYFi5cqNatW2v8+PEKCAjQunXr9PHHH+vVV19VuXLl7vv4bKFZs2Zq0aKFRo4cqfj4eNWrV0+//vqr3nnnHdWoUUMvvviiRX9/f3+1a9dOoaGh8vPz0+LFixUZGalJkyaZ7/lui2MvXbq03Nzc9MUXX6hixYry8PCQv79/ujOqly9fXq+88opmzpypfPnyqWXLljpx4oTGjh2rEiVKaNiwYVa/Lm3btlWVKlVUq1YtFS1aVCdPntT06dMVEBCgsmXL3nP72NhYtW/fXi+//LLi4uL0zjvvyNXVVaNHj07Td8iQIerUqZNMJpP69++fqXwtWrRQ8eLF1bZtW1WoUEGpqamKiorSBx98IA8PDw0ZMkTSzZnV33zzTb377ru6fv26unTpogIFCuiPP/7Q+fPnNW7cOKtel8y+t927d9dHH32kHj166MSJE6patap27NihsLAwtWrVyvwzwNb69++vyZMna9++ffrss88y7Ldy5Uo5OjqqWbNmOnjwoMaOHatHH31UHTt2lHTzdRs/frzGjBmjY8eO6amnntIjjzyic+fOaffu3XJ3d7f6tQMAu5Jzc+ABADIrKirK6NGjh1GyZEnD2dnZcHd3N2rUqGG8/fbbRmxsrLlferPHz5071yhfvrzh4uJilCpVyggPDzc+//xzQ5Jx/PhxwzAM46effjLat29vBAQEGC4uLkbhwoWNRo0aGWvXrjXvZ8GCBUaTJk0MHx8fw9nZ2fD39zc6duxo/Prrr+Y+9zN7vGHcnN1+2rRpRpUqVQxnZ2ejQIECRnBwsPGf//zH3Gfnzp1GcHCwkT9/fqNo0aJGnz59jP3796eZvTwhIcHo06ePUbRoUcNkMlkcb3ozYJ88edLo2rWrUbhwYcPJyckoX7688f777xspKSnmPunNhH2LJOOdd95J0367W6/PV199ddd+t2bN/ueff9Ksu379ujFy5EgjICDAcHJyMvz8/IxXX33VuHjxokW/gIAAo3Xr1saKFSuMypUrG87OzkZgYKAxderUNPu832M3DMNYunSpUaFCBcPJycnitbhz9njDuPk+T5o0yShXrpzh5ORkFClSxHjhhReM06dPW/Rr1KiRUbly5TTPdef/nQ8++MAICQkxihQpYjg7OxslS5Y0evfubZw4cSLdrLfcej8WLVpkDB482ChatKjh4uJiNGjQwNi7d2+62yQkJBguLi7GU089ddd932758uVG165djbJlyxoeHh6Gk5OTUbJkSePFF180/vjjjzT9Fy5caNSuXdtwdXU1PDw8jBo1alj8387s62IYmXtvDcMwLly4YPTr18/w8/MzHB0djYCAAGP06NHGjRs3LPrZYvb42zVu3NgoVKiQce3atTTrbv3f2bdvn9G2bVvDw8PD8PT0NLp06WIxi/8tq1evNpo0aWJ4eXkZLi4uRkBAgPHcc88Z33//fabzAoA9MhnGHRcwAQCAXC8wMFBVqlTRN998k9NRHir/+c9/1K5dO61bt06tWrXK6Ti5WmxsrAICAjRo0CDzZHy3Cw0N1bhx4/TPP/9ky3X1AJBbcHo8AADAPfzxxx86efKkXnvtNVWvXt08BwOs9/fff+vYsWN6//33lS9fPvPlAQCA9DERHQAAwD30799f7dq10yOPPKKlS5fe9yz6edlnn32mxo0b6+DBg/riiy9UrFixnI4EAHaN0+MBAAAAALBTOTrSvn37drVt21b+/v4ymUxpbjViGIZCQ0Pl7+8vNzc3819lb5eQkKBBgwapSJEicnd3V7t27Wx2f1MAAAAAAHJSjhbtV69e1aOPPqpZs2alu37y5MmaOnWqZs2apT179sjX11fNmjXT5cuXzX2GDh2qVatWadmyZdqxY4euXLmiNm3aKCUl5UEdBgAAAAAA2cJuTo83mUxatWqVnnnmGUk3R9n9/f01dOhQjRw5UtLNUXUfHx9NmjRJffv2VVxcnIoWLapFixapU6dOkqSzZ8+qRIkS+vbbb9WiRYucOhwAAAAAAO6b3c4ef/z4ccXExKh58+bmNhcXFzVq1Eg7d+5U3759tW/fPiUlJVn08ff3V5UqVbRz584Mi/aE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8ePHszMHAAAAAAC4A6fHAw+hM2fO6IUXXlDhwoWVP39+Va9eXfv27TOvv3LligYOHKjixYvLzc1NFStWVERExF33mZSUpPHjx6t06dJydXXVo48+qvXr11v0CQwMlMlkSvMYMGBAthwnAAAA8LCzaiI6APbv4sWLqlevnpo0aaLvvvtO3t7e+uuvv1SwYEFzn2HDhmnLli1avHixAgMDtXHjRvXv31/+/v56+umn093vW2+9pcWLF+vTTz9VhQoVtGHDBrVv3147d+5UjRo1JEl79uyxuO3j77//rmbNmun555/P1mMGAAAAHlYmg2kcFR8frwIFCiguLk5eXl45HQe4L6NGjdKPP/6oH374IcM+VapUUadOnTR27FhzW82aNdWqVSu9++676W7j7++vMWPGWIyaP/PMM/Lw8NDixYvT3Wbo0KH65ptvdPToUZlMpiweEWCfdpyYldMRrFY/cGBORwAAAP8vs3Uop8cDD5m1a9eqVq1aev755+Xt7a0aNWro008/tehTv359rV27VmfOnJFhGNqyZYuOHDmiFi1aZLjfhIQEubq6WrS5ublpx44d6fZPTEzU4sWL9dJLL1GwAwAAAFmUqdPjZ8yYkekdDh48OMthANy/Y8eOKSIiQsOHD9ebb76p3bt3a/DgwXJxcVH37t0l3fxMv/zyyypevLgcHR2VL18+ffbZZ6pfv36G+23RooWmTp2qhg0bqnTp0tq0aZPWrFljcTr87VavXq1Lly6pZ8+e2XGYAAAgm3R4r0tOR7DKylFLczoCkK0yVbRPmzYtUzszmUwU7UAOS01NVa1atRQWFiZJqlGjhg4ePKiIiAiLon3Xrl1au3atAgICtH37dvXv319+fn5q2rRpuvv98MMP9fLLL6tChQoymUwqXbq0evXqpXnz5qXb//PPP1fLli3l7++fPQcKAAAA5AGZKtq53RuQe/j5+alSpUoWbRUrVtTXX38tSbp+/brefPNNrVq1Sq1bt5YkVatWTVFRUZoyZUqGRXvRokW1evVq3bhxQxcuXJC/v79GjRqloKCgNH1Pnjyp77//XitXrrTx0QEAAAB5y31d024YhpjHDrAv9erV0+HDhy3ajhw5ooCAAEk3b92WlJSkfPksP/4ODg5KTU295/5dXV1VrFgxJScn6+uvv053tvl58+bJ29vb/EcBAAAAAFmTpaJ9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+fmpV69eunDhgnn9p59+qgYNGuiRRx7RI488oqZNm2r37t3ZfSjAQ2f58uVavHixlixZov3792vBggWaMmWKFixYkNPRYEOMtMPuXLx4UfXq1VOTJk303XffydvbW3/99ZcKFiyY4TYREREaPXq0Pv30U9WuXVu7d+/Wyy+/rEceeURt27Z9cOEBAHiIZOU7eceOHerevbumTZumtm3b6syZM+rXr5/69OmjVatWSZK2bt2qLl26KCQkRK6urpo8ebKaN2+ugwcPqlixYg/o6IDc74033tCoUaPUuXNnSVLVqlV18uRJhYeHq0ePHjmcDrZC0Q67M2nSJJUoUULz5s0ztwUGBt51m0WLFqlv377q1KmTJKlUqVLatWuXJk2aRNEOAEAWZeU7edeuXQoMDNTgwYMlSUFBQerbt68mT55s7vPFF19YbPPpp59qxYoV2rRpk7p37267AwAecteuXVO+fJYnTzs4OHDLt4cMp8fD7qxdu1a1atXS888/L29vb9WoUUOffvrpXbdJSEiQq6urRZubm5t2796tpKSk7IwLAMBDKyvfySEhIfr777/17bffyjAMnTt3TitWrDDPbp2ea9euKSkpSYUKFbL1IQAPtbZt22rixIlat26dTpw4oVWrVmnq1Klq3759TkeDDVG0w+4cO3ZMERERKlu2rDZs2KB+/fpp8ODBd71GvUWLFvrss8+0b98+GYahvXv3au7cuUpKStL58+cfYHoAAB4eWflODgkJ0RdffKFOnTrJ2dlZvr6+KliwoGbOnJnhNqNGjVKxYsXUtGnT7DgM4KE1c+ZMPffcc+rfv78qVqyo119/XX379tW7776b09FgQ5weD7uTmpqqWrVqKSwsTJJUo0YNHTx4UBERERmeMjd27FjFxMSobt26MgxDPj4+6tmzpyZPniwHB4cHGR8AgIdGVr6T//jjDw0ePFhvv/22WrRooejoaL3xxhvq16+fPv/88zT9J0+erKVLl2rr1q1pzpoDcHeenp6aPn26pk+fntNRkI0YaYfd8fPzU6VKlSzaKlasqFOnTmW4jZubm+bOnatr167pxIkTOnXqlAIDA+Xp6akiRYpkd2QAAO4pNDRUJpPJ4uHr65th/61bt6bpbzKZ9N///tfcJ7tnYc/Kd3J4eLjq1aunN954Q9WqVVOLFi308ccfa+7cuYqOjrboO2XK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",
      "text/plain": [
       "<Figure size 1200x600 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "colors=['#518758','#f6ffa5','#c9f3bc','#168757',\\\n",
    "            '#F0F176','#528F78', '#BBF3DA', '#F1F081',\\\n",
    "           '#BFF48A','#A5C586','#F5F5A1', '#C3DF93','#A5D48A']\n",
    "other_colors=colors[0:3]+[colors[11]]\n",
    "\n",
    "x = np.arange(4)  # the label locations\n",
    "width = 0.2  # the width of the bars\n",
    "multiplier = 0\n",
    "\n",
    "fig, ax = plt.subplots(figsize=(12,6))\n",
    "\n",
    "# Get the school type as type, and the percentage values of each class as values\n",
    "\n",
    "# Loop through each school type and its percentage values\n",
    "for idx, (type, values) in enumerate(percent.items()):\n",
    "    offset = width * multiplier\n",
    "    # Use colors from other_colors for each school type\n",
    "    rects = ax.bar(x + offset, values, width, label=type, color=other_colors[idx % len(other_colors)])\n",
    "    ax.bar_label(rects, padding=4)\n",
    "    multiplier += 1\n",
    "    \n",
    "# Add some text for labels, title and custom x-axis tick labels, etc.\n",
    "ax.set_ylabel('Percentage of Programs Per School Type')\n",
    "ax.set_title('Classification Proportions by School Type')\n",
    "ax.set_xticks(x + 1.5*width, percent.index)\n",
    "ax.set_xlabel('Classification')\n",
    "ax.legend(loc='upper center', ncols=4)\n",
    "ax.set_ylim(0, 100)\n",
    "\n",
    "# Save the plot?\n",
    "plt.savefig('classifications_by_school_type_GREENS.pdf',format='pdf')\n",
    "\n",
    "\n",
    "plt.show()"
   ]
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.11.9"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
